package com.link.base.base.report.dao.mybatis.mapper;

import com.link.base.base.report.model.*;
import com.link.base.base.report.model.*;

import java.util.List;

/**
 * @author unknown
 * @date unknown
 */
public interface PortalReportMapper {
    /**
     * 客户类型报表
     * @param acctTypeReport
     * @return List PortalAccountTypeReport
     * @throws Exception
     */
    public List<PortalAccountTypeReport> queryAccntTypeReportSelect(PortalAccountTypeReport acctTypeReport) throws Exception;

   /**
     * 根据销售负责人统计客户类型报表
     * @param acctTypeReport
     * @return List PortalAccountTypeReport
     * @throws Exception
     */
    public List<PortalAccountTypeReport> queryAccntTypeReportByPostn(PortalAccountTypeReport acctTypeReport) throws Exception;


    /**
     * 商机Top10报表
     * @param optyTop10Report
     * @return List PortalOptyTop10Report
     * @throws Exception
     */
    public List<PortalOptyTop10Report> queryOptyTop10ReportSelect(PortalOptyTop10Report optyTop10Report) throws Exception;

    /**
     * 商机阶段-销售漏斗
     * @param params
     * @return List PortalOptyStageReport
     * @throws Exception
     */
    public List<PortalOptyStageReport> queryOptyStageReport(PortalSearchText params) throws Exception;

    /**
     * 查询报表
     * @param rs
     * @return List PortalBaseDataReport
     * @throws Exception
     */
    public List<PortalBaseDataReport> queryReport(PortalReportSearch rs) throws Exception;

    /**
     * 查询销售额报表
     * @param salesReport
     * @return List PortalSalesAmount
     * @throws Exception
     */
    public List<PortalSalesAmount> querySalesAmountReportSelect(PortalSalesAmount salesReport) throws Exception;

    /**
     * 查询年期间销售额报表
     * @param salesReport
     * @return List PortalSalesAmount
     * @throws Exception
     */
    public List<PortalSalesAmount> queryYearPeriodSales(PortalSalesAmount salesReport) throws Exception;

    /**
     * 查询产品销售报表
     * @param prodSalesReport
     * @return List PortalProductSalesReport
     * @throws Exception
     */
    public List<PortalProductSalesReport> queryProductSalesReportSelect(PortalProductSalesReport prodSalesReport) throws Exception;

    /**
     * 消费者渠道构成报表
     * @param record
     * @return List PortalConsumerSourceConstitute
     * @throws Exception
     */
    public List<PortalConsumerSourceConstitute> queryConsumerSourceConstitute(PortalConsumerSourceConstitute record) throws Exception;
}

